﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BR_CruzDelSur;
using BR_CruzDelSur.Interfaces;
using System.Web.Services;
using BE_CruzDelSur;
using System.Data;

namespace WebCruzDelSur
{
    public partial class ActualizarCargaArribada : System.Web.UI.Page
    {
        IBR_GuiaRemision guiaRemision = new BR_GuiaRemision();
        IBR_ProgramacionRuta programacionRuta = new BR_ProgramacionRuta();
        IBR_Carga carga = new BR_Carga();
        IBR_Util util = new BR_Util();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (HttpContext.Current.Session["Usuario"] == null)
            {
                String message = "Debe autenticarse en el sistema. ";
                String strJavascriptFunctions = "";
                strJavascriptFunctions = "ShowMessageError('" + message + "');";
                ClientScript.RegisterStartupScript(this.GetType(), "Alerta", strJavascriptFunctions, true);
                return;
            }

            if (!Page.IsPostBack)
            {
                ddlLugarOrigen.DataSource = util.f_ListarUtil("", "UD", true);
                ddlLugarOrigen.DataValueField = "Codigo";
                ddlLugarOrigen.DataTextField = "Nombre";
                ddlLugarOrigen.DataBind();

                ddlLugarDestino.DataSource = util.f_ListarUtil("", "UD", true);
                ddlLugarDestino.DataValueField = "Codigo";
                ddlLugarDestino.DataTextField = "Nombre";
                ddlLugarDestino.DataBind();

                ddlEstado.DataSource = util.f_ListarEstadosArribado();
                ddlEstado.DataValueField = "Codigo";
                ddlEstado.DataTextField = "Nombre";
                ddlEstado.DataBind();
                ddlEstado.SelectedValue = "IN";
            }
        }

        protected void gridCarga_RowCommand(object sender, GridViewCommandEventArgs e)
        {

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            int lugarOrigen = (ddlLugarOrigen.SelectedValue == "" ? -1 : Convert.ToInt16(ddlLugarOrigen.SelectedValue));
            int lugarDestino = (ddlLugarDestino.SelectedValue == "" ? -1 : Convert.ToInt16(ddlLugarDestino.SelectedValue));
            string estado = ""; // (ddlEstado.SelectedValue == "" ? "" : ddlLugarDestino.SelectedValue);
            string fechaLlegada = txtFechaLlegada.Text;
            string fechaPartida = txtFechaPartida.Text;
            int guia = util.f_intValor(txtGuia.Text);

            if (guia == 0) guia = -1;

            List<BE_GuiaRemision> lst = guiaRemision.f_ListarCargasArribarXGuia(fechaPartida, fechaLlegada, lugarOrigen, lugarDestino, estado, guia);

            gridCarga.DataSource = lst;
            gridCarga.DataBind();

            lblSinResultados.Visible = !(lst.Count() > 0);            
        }

        protected void btnActualizar_Click(object sender, EventArgs e)
        {
            string strCarga = "";
            string strEstado = "";

            foreach (GridViewRow item in gridCarga.Rows)
            {
                if (((CheckBox)item.FindControl("lblCodigoCarga")).Checked)
                {
                    strCarga = ((HiddenField)item.FindControl("hdnCodigoCarga")).Value;
                    strEstado = ((HiddenField)item.FindControl("hdnEstadoCarga")).Value;

                    if((strEstado == "INICIADO" && ddlEstado.SelectedValue == "EN") || (strEstado == "ENVIADO" && ddlEstado.SelectedValue == "RC"))
                        carga.f_ActualizarEstado(strCarga, ddlEstado.SelectedValue);
                }
            }

            String message = "Se actualizaron las cargas ingresadas a almacén. ";
            String strJavascriptFunctions = "";

            strJavascriptFunctions = "ShowMessage('" + message + "');setTimeout('f_redirect(2);', 2000);";

            ClientScript.RegisterStartupScript(this.GetType(), "Alerta", strJavascriptFunctions, true);
        }

        protected void gridCarga_RowDataBound(object sender, GridViewRowEventArgs e)
        {         
        }
    }
}